home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Visual Database / Visual BASIC 5.0 (Ent. Edition) / Vb5ent Extractor.EXE / VB / SAMPLES / COMPTOOL / VBMAIL / VBMAIL.FRM (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1996-09-16  |  20.1 KB  |  620 lines

  1. VERSION 5.00
  2. Object = "{20C62CAE-15DA-101B-B9A8-444553540000}#1.1#0"; "MSMAPI16.OCX"
  3. Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.1#0"; "COMDLG16.OCX"
  4. Begin VB.MDIForm VBMail 
  5.    BackColor       =   &H8000000C&
  6.    Caption         =   "VB Mail"
  7.    ClientHeight    =   5412
  8.    ClientLeft      =   1380
  9.    ClientTop       =   2892
  10.    ClientWidth     =   9204
  11.    Icon            =   "VBMAIL.frx":0000
  12.    Begin VB.PictureBox Picture1 
  13.       Align           =   2  'Align Bottom
  14.       BackColor       =   &H00C0C0C0&
  15.       BorderStyle     =   0  'None
  16.       Enabled         =   0   'False
  17.       Height          =   330
  18.       Left            =   0
  19.       ScaleHeight     =   336
  20.       ScaleWidth      =   9204
  21.       TabIndex        =   0
  22.       Top             =   5076
  23.       Width           =   9204
  24.       Begin VB.Line MsgBoxSide 
  25.          BorderColor     =   &H00FFFFFF&
  26.          Index           =   1
  27.          X1              =   7260
  28.          X2              =   7260
  29.          Y1              =   60
  30.          Y2              =   300
  31.       End
  32.       Begin VB.Line MsgBoxSide 
  33.          BorderColor     =   &H00808080&
  34.          Index           =   0
  35.          X1              =   60
  36.          X2              =   60
  37.          Y1              =   60
  38.          Y2              =   300
  39.       End
  40.       Begin VB.Line MsgBoxLine 
  41.          BorderColor     =   &H00FFFFFF&
  42.          Index           =   1
  43.          X1              =   60
  44.          X2              =   7260
  45.          Y1              =   300
  46.          Y2              =   300
  47.       End
  48.       Begin VB.Line MsgBoxLine 
  49.          BorderColor     =   &H00808080&
  50.          Index           =   0
  51.          X1              =   60
  52.          X2              =   7260
  53.          Y1              =   60
  54.          Y2              =   60
  55.       End
  56.       Begin VB.Line TimeBoxSide 
  57.          BorderColor     =   &H00FFFFFF&
  58.          Index           =   1
  59.          X1              =   8580
  60.          X2              =   8580
  61.          Y1              =   60
  62.          Y2              =   300
  63.       End
  64.       Begin VB.Line TimeBoxLine 
  65.          BorderColor     =   &H00FFFFFF&
  66.          Index           =   1
  67.          X1              =   7320
  68.          X2              =   8580
  69.          Y1              =   300
  70.          Y2              =   300
  71.       End
  72.       Begin VB.Line TimeBoxSide 
  73.          BorderColor     =   &H00808080&
  74.          Index           =   0
  75.          X1              =   7320
  76.          X2              =   7320
  77.          Y1              =   60
  78.          Y2              =   300
  79.       End
  80.       Begin VB.Line TimeBoxLine 
  81.          BorderColor     =   &H00808080&
  82.          Index           =   0
  83.          X1              =   7320
  84.          X2              =   8580
  85.          Y1              =   60
  86.          Y2              =   60
  87.       End
  88.       Begin VB.Line TopLine2 
  89.          BorderColor     =   &H00FFFFFF&
  90.          Index           =   1
  91.          X1              =   0
  92.          X2              =   10800
  93.          Y1              =   15
  94.          Y2              =   15
  95.       End
  96.       Begin VB.Label UnreadLbl 
  97.          BackStyle       =   0  'Transparent
  98.          Height          =   255
  99.          Left            =   3000
  100.          TabIndex        =   7
  101.          Top             =   60
  102.          Width           =   1575
  103.       End
  104.       Begin VB.Line TopLine2 
  105.          BorderColor     =   &H00000000&
  106.          Index           =   0
  107.          X1              =   0
  108.          X2              =   10800
  109.          Y1              =   0
  110.          Y2              =   0
  111.       End
  112.       Begin VB.Label TimeLbl 
  113.          AutoSize        =   -1  'True
  114.          BackStyle       =   0  'Transparent
  115.          Caption         =   "Time"
  116.          Height          =   205
  117.          Left            =   7500
  118.          TabIndex        =   10
  119.          Top             =   75
  120.          Width           =   345
  121.       End
  122.       Begin VB.Label MsgCountLbl 
  123.          AutoSize        =   -1  'True
  124.          BackStyle       =   0  'Transparent
  125.          Caption         =   "Message Count Information"
  126.          Height          =   195
  127.          Left            =   120
  128.          TabIndex        =   11
  129.          Top             =   75
  130.          Width           =   1935
  131.       End
  132.    End
  133.    Begin VB.PictureBox Picture3 
  134.       Align           =   1  'Align Top
  135.       Height          =   855
  136.       Left            =   0
  137.       ScaleHeight     =   804
  138.       ScaleWidth      =   9156
  139.       TabIndex        =   8
  140.       Top             =   525
  141.       Visible         =   0   'False
  142.       Width           =   9204
  143.       Begin VB.Timer Timer1 
  144.          Interval        =   15000
  145.          Left            =   180
  146.          Top             =   120
  147.       End
  148.       Begin MSMAPI.MAPIMessages MapiMess 
  149.          Left            =   1320
  150.          Top             =   120
  151.          _ExtentX        =   804
  152.          _ExtentY        =   804
  153.          AddressEditFieldCount=   0
  154.          AddressModifiable=   0   'False
  155.          ResolveUI       =   0   'False
  156.          FetchSorted     =   0   'False
  157.          FetchUnreadOnly =   -1  'True
  158.       End
  159.       Begin MSMAPI.MAPISession MapiSess 
  160.          Left            =   720
  161.          Top             =   120
  162.          _ExtentX        =   804
  163.          _ExtentY        =   804
  164.          DownloadMail    =   -1  'True
  165.          LogonUI         =   -1  'True
  166.          NewSession      =   0   'False
  167.       End
  168.       Begin MSComDlg.CommonDialog CMDialog1 
  169.          Left            =   1920
  170.          Top             =   120
  171.          _ExtentX        =   847
  172.          _ExtentY        =   847
  173.          CancelError     =   -1  'True
  174.          FilterIndex     =   672
  175.          FontSize        =   2.36135e-37
  176.       End
  177.       Begin VB.Label Label1 
  178.          Caption         =   "These controls are invisible at run time."
  179.          Height          =   315
  180.          Left            =   2700
  181.          TabIndex        =   9
  182.          Top             =   300
  183.          Width           =   2835
  184.       End
  185.    End
  186.    Begin VB.PictureBox Picture2 
  187.       Align           =   1  'Align Top
  188.       BackColor       =   &H00C0C0C0&
  189.       BorderStyle     =   0  'None
  190.       Height          =   525
  191.       Left            =   0
  192.       ScaleHeight     =   528
  193.       ScaleWidth      =   9204
  194.       TabIndex        =   12
  195.       Top             =   0
  196.       Width           =   9204
  197.       Begin VB.CommandButton Delete 
  198.          Caption         =   "&Delete"
  199.          Enabled         =   0   'False
  200.          Height          =   330
  201.          Left            =   4980
  202.          TabIndex        =   4
  203.          Top             =   90
  204.          Width           =   1035
  205.       End
  206.       Begin VB.CommandButton Next 
  207.          Caption         =   "&Next"
  208.          Enabled         =   0   'False
  209.          Height          =   330
  210.          Left            =   7440
  211.          TabIndex        =   6
  212.          Top             =   90
  213.          Width           =   1035
  214.       End
  215.       Begin VB.CommandButton Previous 
  216.          Caption         =   "&Previous"
  217.          Enabled         =   0   'False
  218.          Height          =   330
  219.          Left            =   6420
  220.          TabIndex        =   5
  221.          Top             =   90
  222.          Width           =   1035
  223.       End
  224.       Begin VB.CommandButton SendCtl 
  225.          Caption         =   "&Forward"
  226.          Enabled         =   0   'False
  227.          Height          =   330
  228.          Index           =   9
  229.          Left            =   3600
  230.          TabIndex        =   3
  231.          Top             =   90
  232.          Width           =   1035
  233.       End
  234.       Begin VB.CommandButton SendCtl 
  235.          Caption         =   "Reply &All"
  236.          Enabled         =   0   'False
  237.          Height          =   330
  238.          Index           =   8
  239.          Left            =   2580
  240.          TabIndex        =   2
  241.          Top             =   90
  242.          Width           =   1035
  243.       End
  244.       Begin VB.CommandButton SendCtl 
  245.          Caption         =   "&Reply"
  246.          Enabled         =   0   'False
  247.          Height          =   330
  248.          Index           =   7
  249.          Left            =   1560
  250.          TabIndex        =   1
  251.          Top             =   90
  252.          Width           =   1035
  253.       End
  254.       Begin VB.CommandButton SendCtl 
  255.          Caption         =   "&Compose"
  256.          Enabled         =   0   'False
  257.          Height          =   330
  258.          Index           =   6
  259.          Left            =   180
  260.          TabIndex        =   13
  261.          Top             =   90
  262.          Width           =   1035
  263.       End
  264.       Begin VB.Line TopLine 
  265.          BorderColor     =   &H00000000&
  266.          Index           =   1
  267.          X1              =   15
  268.          X2              =   10800
  269.          Y1              =   505
  270.          Y2              =   505
  271.       End
  272.       Begin VB.Line Line1 
  273.          BorderColor     =   &H00FFFFFF&
  274.          X1              =   0
  275.          X2              =   0
  276.          Y1              =   0
  277.          Y2              =   540
  278.       End
  279.       Begin VB.Line TopLine 
  280.          BorderColor     =   &H00FFFFFF&
  281.          Index           =   0
  282.          X1              =   0
  283.          X2              =   10800
  284.          Y1              =   0
  285.          Y2              =   0
  286.       End
  287.    End
  288.    Begin VB.Menu FileMenu 
  289.       Caption         =   "&File"
  290.       Begin VB.Menu PrintMessage 
  291.          Caption         =   "&Print Message"
  292.          Enabled         =   0   'False
  293.       End
  294.       Begin VB.Menu PrSetup 
  295.          Caption         =   "Prin&ter Setup..."
  296.       End
  297.       Begin VB.Menu sep 
  298.          Caption         =   "-"
  299.       End
  300.       Begin VB.Menu Exit 
  301.          Caption         =   "E&xit"
  302.       End
  303.    End
  304.    Begin VB.Menu EditMenu 
  305.       Caption         =   "&Edit"
  306.       Begin VB.Menu EditDelete 
  307.          Caption         =   "Delete"
  308.          Enabled         =   0   'False
  309.       End
  310.    End
  311.    Begin VB.Menu Mail 
  312.       Caption         =   "&Mail"
  313.       Begin VB.Menu Logon 
  314.          Caption         =   "Lo&gon"
  315.       End
  316.       Begin VB.Menu LogOff 
  317.          Caption         =   "Log&off"
  318.          Enabled         =   0   'False
  319.       End
  320.       Begin VB.Menu sep2 
  321.          Caption         =   "-"
  322.       End
  323.       Begin VB.Menu rMsgList 
  324.          Caption         =   "Update Message List"
  325.          Enabled         =   0   'False
  326.       End
  327.    End
  328.    Begin VB.Menu Options 
  329.       Caption         =   "&Options"
  330.       Begin VB.Menu MailOpts 
  331.          Caption         =   "&Mail..."
  332.       End
  333.       Begin VB.Menu FontS 
  334.          Caption         =   "&Fonts"
  335.          Begin VB.Menu FontScreen 
  336.             Caption         =   "&Screen..."
  337.          End
  338.          Begin VB.Menu FontPrt 
  339.             Caption         =   "&Printer..."
  340.          End
  341.       End
  342.       Begin VB.Menu DispTools 
  343.          Caption         =   "&Display Tools"
  344.          Checked         =   -1  'True
  345.          Enabled         =   0   'False
  346.       End
  347.    End
  348.    Begin VB.Menu Address 
  349.       Caption         =   "&Address"
  350.       Begin VB.Menu ShowAB 
  351.          Caption         =   "Show Address Book"
  352.       End
  353.    End
  354.    Begin VB.Menu Window 
  355.       Caption         =   "Window"
  356.       WindowList      =   -1  'True
  357.       Begin VB.Menu wa 
  358.          Caption         =   "&Cascade"
  359.          Index           =   0
  360.       End
  361.       Begin VB.Menu wa 
  362.          Caption         =   "Tile Horizontally"
  363.          Index           =   1
  364.       End
  365.       Begin VB.Menu wa 
  366.          Caption         =   "Tile Vertically"
  367.          Index           =   2
  368.       End
  369.       Begin VB.Menu wa 
  370.          Caption         =   "Arrange Icons"
  371.          Index           =   3
  372.       End
  373.    End
  374.    Begin VB.Menu HelpMenu 
  375.       Caption         =   "&Help"
  376.       Begin VB.Menu About 
  377.          Caption         =   "&About"
  378.       End
  379.    End
  380. Attribute VB_Name = "VBMail"
  381. Attribute VB_GlobalNameSpace = False
  382. Attribute VB_Creatable = False
  383. Attribute VB_TemplateDerived = False
  384. Attribute VB_PredeclaredId = True
  385. Attribute VB_Exposed = False
  386. Private Sub About_Click()
  387.     MsgBox "Sample Mail Application", 0, "VB Mail"
  388. End Sub
  389. Private Sub Delete_Click()
  390. ' Delete a mail message.
  391.     ' View all selected messages that are deleted.
  392.     If TypeOf VBMail.ActiveForm Is MsgView Then
  393.         Call DeleteMessage
  394.     ElseIf TypeOf VBMail.ActiveForm Is MailLst Then
  395.         ' Delete multiple selection.
  396.         VBMail.MapiMess.MsgIndex = MailLst.MList.ListIndex
  397.         Call DeleteMessage
  398.     End If
  399. End Sub
  400. Private Sub DispTools_Click()
  401.     DispTools.Checked = Not DispTools.Checked
  402.     MailLst.Tools.Visible = DispTools.Checked
  403.     If MailLst.Tools.Visible Then
  404.         Factor = 1
  405.         ToolsSize% = -MailLst.Tools.Height
  406.     Else
  407.         Factor = -1
  408.         ToolsSize% = 0
  409.     End If
  410.     Select Case MailLst.WindowState
  411.         Case 0    ' Change the size of the form to reflect the addition or deletion of a toolbar.
  412.             MailLst.Height = MailLst.Height + (Factor * MailLst.Tools.Height)
  413.         Case 2    ' If maximized, adjust the size of the list box.
  414.             MailLst.MList.Height = ScaleHeight - 90 - MailLst.MList.Top + ToolsSize%
  415.     End Select
  416. End Sub
  417. Private Sub EditDelete_Click()
  418. ' Delete the items in the list.
  419. On Error GoTo Trap
  420.     If TypeOf VBMail.ActiveForm Is MailLst Then
  421.         Call Delete_Click
  422.     End If
  423.     Exit Sub
  424. Trap:
  425.     ' If an error occurs, there is probably no active form.
  426.     ' Exit the Sub procedure.
  427.     Exit Sub
  428. End Sub
  429. Private Sub Exit_Click()
  430.     ' Close the application and log off.
  431.     If MapiSess.SessionID <> 0 Then
  432.         Call logoff_Click
  433.     End If
  434.     End
  435. End Sub
  436. Private Sub FontPrt_Click()
  437.     ' Set the printer fonts.
  438.     On Error Resume Next
  439.     CMDialog1.Flags = 2
  440.     CMDialog1.FontName = Printer.FontName
  441.     CMDialog1.FontSize = Printer.FontSize
  442.     CMDialog1.FontBold = Printer.FontBold
  443.     CMDialog1.FontItalic = Printer.FontItalic
  444.     CMDialog1.ShowFont
  445.     If Err = 0 Then
  446.         Printer.FontName = CMDialog1.FontName
  447.         Printer.FontSize = CMDialog1.FontSize
  448.         Printer.FontBold = CMDialog1.FontBold
  449.         Printer.FontItalic = CMDialog1.FontItalic
  450.     End If
  451. End Sub
  452. Private Sub FontScreen_Click()
  453.     ' Set the screen fonts for the active control.
  454.     On Error Resume Next
  455.     CMDialog1.Flags = 1
  456.     CMDialog1.FontName = VBMail.ActiveForm.ActiveControl.FontName
  457.     CMDialog1.FontSize = VBMail.ActiveForm.ActiveControl.FontSize
  458.     CMDialog1.FontBold = VBMail.ActiveForm.ActiveControl.FontBold
  459.     CMDialog1.FontItalic = VBMail.ActiveForm.ActiveControl.FontItalic
  460.     CMDialog1.ShowFont
  461.     If Err = 0 Then
  462.         VBMail.ActiveForm.ActiveControl.FontName = CMDialog1.FontName
  463.         VBMail.ActiveForm.ActiveControl.FontSize = CMDialog1.FontSize
  464.         VBMail.ActiveForm.ActiveControl.FontBold = CMDialog1.FontBold
  465.         VBMail.ActiveForm.ActiveControl.FontItalic = CMDialog1.FontItalic
  466.     End If
  467. End Sub
  468. Private Sub logoff_Click()
  469.     ' Log off from the mail system.
  470.     Call LogOffUser
  471. End Sub
  472. Private Sub Logon_Click()
  473.     ' Log onto the mail system.
  474.     On Error Resume Next
  475.     MapiSess.Action = 1
  476.     If Err <> 0 Then
  477.         MsgBox "Logon Failure: " + Error$
  478.     Else
  479.         Screen.MousePointer = 11
  480.         MapiMess.SessionID = MapiSess.SessionID
  481.         ' Get the message count.
  482.         GetMessageCount
  483.         ' Load the mail list with envelope information.
  484.         Screen.MousePointer = 11
  485.         Call LoadList(MapiMess)
  486.         Screen.MousePointer = 0
  487.         ' Adjust the buttons as needed.
  488.         Logon.Enabled = False
  489.         LogOff.Enabled = True
  490.         VBMail.SendCtl(vbMessageCompose).Enabled = True
  491.         VBMail.SendCtl(vbMessageReplyAll).Enabled = True
  492.         VBMail.SendCtl(vbMessageReply).Enabled = True
  493.         VBMail.SendCtl(vbMessageForward).Enabled = True
  494.         VBMail.PrintMessage.Enabled = True
  495.         VBMail.DispTools.Enabled = True
  496.         VBMail.rMsgList.Enabled = True
  497.         VBMail.EditDelete.Enabled = True
  498.       End If
  499. End Sub
  500. Private Sub MailOpts_Click()
  501.     ' Display the Mail Options form.
  502.     OptionType = conOptionGeneral
  503.     MailOptFrm.Show 1
  504. End Sub
  505. Private Sub MDIForm_Load()
  506.     ' Ensure all the controls are sized as needed.
  507.     TimeLbl = Time$
  508.      SendWithMapi = True
  509.      Call Picture1_Resize
  510.      Call Picture2_Resize
  511.      VBMail.MsgCountLbl = "Off Line"
  512. End Sub
  513. Private Sub Next_Click()
  514.     ' View the next message in the list.
  515.     If MailLst.MList.ListIndex <> MailLst.MList.ListCount - 1 Then
  516.         MailLst.MList.ItemData(MailLst.MList.ListIndex) = False
  517.         MailLst.MList.ListIndex = MailLst.MList.ListIndex + 1
  518.     End If
  519.     Call ViewNextMsg
  520. End Sub
  521. Private Sub Picture1_Resize()
  522. Const TimeBoxStartOffset = 1200
  523. Const TimeBoxEndOffset = 60
  524. Const MsgBoxStartOffset = 60
  525. Const MsgBoxEndOffset = TimeBoxStartOffset + 90
  526.     ' Adjust the sizes of the lines and position the time label.
  527.     TimeLbl.Left = Picture1.Width - TimeLbl.Width - 265
  528.     TopLine2(0).X2 = Picture1.Width
  529.     TopLine2(1).X2 = Picture1.Width
  530.     TimeBoxLine(0).X1 = Picture1.Width - TimeBoxStartOffset
  531.     TimeBoxLine(0).X2 = Picture1.Width - TimeBoxEndOffset
  532.     TimeBoxLine(1).X1 = Picture1.Width - TimeBoxStartOffset
  533.     TimeBoxLine(1).X2 = Picture1.Width - TimeBoxEndOffset
  534.     TimeBoxSide(0).X1 = Picture1.Width - TimeBoxStartOffset
  535.     TimeBoxSide(0).X2 = Picture1.Width - TimeBoxStartOffset
  536.     TimeBoxSide(1).X1 = Picture1.Width - TimeBoxEndOffset
  537.     TimeBoxSide(1).X2 = Picture1.Width - TimeBoxEndOffset
  538.     MsgBoxLine(0).X2 = Picture1.Width - MsgBoxEndOffset
  539.     MsgBoxLine(1).X2 = Picture1.Width - MsgBoxEndOffset
  540.     MsgBoxSide(1).X1 = Picture1.Width - MsgBoxEndOffset
  541.     MsgBoxSide(1).X2 = Picture1.Width - MsgBoxEndOffset
  542.     Picture1.Refresh
  543. End Sub
  544. Private Sub Picture2_Resize()
  545.     ' Adjust the positions of the lines.
  546.     TopLine(0).X2 = Picture2.Width
  547.     TopLine(1).X2 = Picture2.Width
  548.     Picture2.Refresh
  549. End Sub
  550. Private Sub Previous_Click()
  551.     ' View the previous message in the list.
  552.     If MailLst.MList.ListIndex <> 0 Then
  553.         MailLst.MList.ItemData(MailLst.MList.ListIndex) = False
  554.         MailLst.MList.ListIndex = MailLst.MList.ListIndex - 1
  555.     End If
  556.     Call ViewNextMsg
  557. End Sub
  558. Private Sub PrintMessage_Click()
  559.     ' Print mail.
  560.     Call PrintMail
  561. End Sub
  562. Private Sub PrSetup_Click()
  563. ' Call the printer setup procedure in the common dialog control.
  564. On Error Resume Next
  565.     CMDialog1.Flags = &H40  ' Printer setup dialog box only.
  566.     CMDialog1.ShowPrinter
  567. End Sub
  568. Private Sub rMsgList_Click()
  569.         Screen.MousePointer = 11
  570.         GetMessageCount
  571.         Call LoadList(MapiMess)
  572.         Screen.MousePointer = 0
  573. End Sub
  574. Private Sub SendCtl_Click(Index As Integer)
  575. Dim NewMessage As New NewMsg
  576.     On Error Resume Next
  577.     ' Index = 6: Compose New Message
  578.     '       = 7: Reply
  579.     '       = 8: Reply All
  580.     '       = 9: Forward
  581.     ' Save the header information and current note text.
  582.     If Index > 6 Then
  583.         ' SVNote = GetHeader(VBMAIL.MapiMess) + VBMAIL.MapiMess.MsgNoteText
  584.         SVNote = VBMail.MapiMess.MsgNoteText
  585.         SVNote = GetHeader(VBMail.MapiMess) + SVNote
  586.     End If
  587.     VBMail.MapiMess.Action = Index
  588.     ' Set the new message text.
  589.     If Index > 6 Then
  590.         VBMail.MapiMess.MsgNoteText = SVNote
  591.     End If
  592.     If SendWithMapi Then
  593.         VBMail.MapiMess.Action = vbMessageSendDlg
  594.     Else
  595.         Call LoadMessage(-1, NewMessage)            ' Load message into VBMail NewMSG window.
  596.     End If
  597. End Sub
  598. Private Sub ShowAB_Click()
  599. On Error Resume Next
  600.     ' Show the address for the current message.
  601.     VBMail.MapiMess.Action = vbMessageShowAdBook
  602.     If Err Then
  603.         If Err <> 32001 Then        ' User chose Cancel.
  604.             MsgBox "Error: " + Error$ + " occurred trying to show the Address Book"
  605.         End If
  606.     Else
  607.         If TypeOf VBMail.ActiveForm Is NewMsg Then
  608.             Call UpdateRecips(VBMail.ActiveForm)
  609.         End If
  610.     End If
  611. End Sub
  612. Private Sub Timer1_Timer()
  613.     ' Update the time label.
  614.     TimeLbl = Time$
  615. End Sub
  616. Private Sub wa_Click(Index As Integer)
  617.     ' Arrange the windows as selected.
  618.     VBMail.Arrange Index
  619. End Sub
  620.